﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/// <summary>
/// Author toanvt
/// CreatedDate 08/12/2011
/// </summary>
public partial class Administrator_AdminUsers : System.Web.UI.Page
{
    private Int32 pageIndex = 1;
    private Int32 pageSize = 10;
    private Int32 totalRecord = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            pageIndex = Int32.Parse(Request.QueryString["PageIndex"].ToString().Trim());
        }
        catch (Exception ex)
        {
            pageIndex = 1;
        }

        pageSize = PaggingControl1.PageSize;

        if (!Page.IsPostBack)
        {
            //kiểm tra xem User thuộc nhóm Administrator hay không
            if (!Roles.IsUserInRole(HangSo.ROLE_ADMIN))
            {
                Response.Redirect("AdminMessage.aspx?Message=Người dùng hiện tại không có quyền vào chức năng này");
            }
            
            LoadDataUsers();
        }
    }

    /// <summary>
    /// Author toanvt
    /// CreatedDate 08/12/2011
    /// </summary>
    private void LoadDataUsers()
    {
        MembershipUserCollection allUser = Membership.GetAllUsers(pageIndex - 1, pageSize, out totalRecord);
        this.rpUsers.DataSource = allUser;
        this.rpUsers.DataBind();

        //thiết định Role cho User
        foreach (RepeaterItem item in rpUsers.Items)
        {
            Literal ltrUserName = (Literal)item.FindControl("ltrUserName");
            Literal ltrRole = (Literal)item.FindControl("ltrRole");
            ltrRole.Text = Roles.GetRolesForUser(ltrUserName.Text.Trim())[0];
        }

        this.PaggingControl1.PageSize = pageSize;
        this.PaggingControl1.TotalRecord = totalRecord;
        this.PaggingControl1.PageURL = "AdminUsers.aspx";
    }

    protected void btnAdd_Click(object sender, EventArgs e)
    {
        Response.Redirect("AdminUserIU.aspx");
    }

    protected void rpUsers_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        String cmdName = e.CommandName;
        String userName = e.CommandArgument.ToString();

        if (cmdName == "delete1")
        {
            //Lấy thông tin user
            MembershipUser theUser = Membership.GetUser(userName);
            
            //trường hợp User không tồn tại thì chỉ Load lại dữ liệu
            if (theUser == null)
            {
                LoadDataUsers();
                return;
            }

            //trường hợp User đang Online thì không làm gì cả
            if (theUser.IsOnline)
            {
                return;
            }

            Membership.DeleteUser(userName);
            LoadDataUsers();
        }
    }
}
